use std::collections::HashMap;

#[derive(Clone)]
pub struct Project {
    pub name: String,
    pub source_files: Vec<String>,
    pub header_files: Vec<String>,
    pub resources: Vec<String>,  // Qt resource files (.qrc)
    pub forms: Vec<String>,      // Qt UI files (.ui)
    pub libraries: Vec<String>,
    pub qt_modules: Vec<String>,
    pub preprocessor_defs: HashMap<String, Vec<String>>,
    pub dependencies: Vec<String>,
    pub include_directories: HashMap<String, Vec<String>>, // 包含目录
}

impl Project {
    pub fn new(name: String) -> Self {
        Self {
            name,
            source_files: Vec::new(),
            header_files: Vec::new(),
            resources: Vec::new(),
            forms: Vec::new(),
            libraries: Vec::new(),
            qt_modules: Vec::new(),
            preprocessor_defs: HashMap::new(),
            dependencies: Vec::new(),
            include_directories: HashMap::new(),
        }
    }
} 